<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateTasksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('tasks', function (Blueprint $table) {
            $table->unsignedBigInteger('id')->primary();
            $table->unsignedBigInteger('tenant_id'); // 租户ID
            $table->string('name'); // 任务名称
            $table->string('service_type'); // 任务服务类型
            $table->datetime('start_time'); // 任务开始时间
            $table->datetime('end_time'); // 任务结束时间
            $table->enum('settlement_cycle', ['daily', 'monthly', 'yearly', 'per_task']); // 结算周期
            $table->decimal('min_fee', 10, 2); // 最低计费
            $table->decimal('max_fee', 10, 2); // 最高计费
            
            // 简历要求
            $table->enum('gender_requirement', ['male', 'female', 'unlimited'])->default('unlimited'); // 性别要求
            $table->enum('education_requirement', ['unlimited', 'junior_high', 'high_school', 'college', 'bachelor', 'master', 'doctor'])->default('unlimited'); // 学历要求
            $table->integer('min_age')->nullable(); // 最小年龄
            $table->integer('max_age')->nullable(); // 最大年龄
            
            // 任务详情
            $table->string('work_location'); // 工作地点
            $table->string('work_time'); // 工作时间
            $table->text('work_content'); // 工作内容
            $table->text('work_compensation'); // 工作报酬
            $table->text('work_benefits')->nullable(); // 工作福利
            
            $table->enum('status', ['inactive', 'active'])->default('inactive'); // 任务状态
            $table->string('qr_code_url')->nullable(); // 二维码URL
            
            $table->timestamps();
            
            // 外键和索引
            $table->foreign('tenant_id')->references('id')->on('tenants')->onDelete('cascade');
            $table->index(['tenant_id', 'status']);
            $table->index('service_type');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('tasks');
    }
}
